Only two files to mod this time, mud.h and clans.c

** mud.h **

add these in clan_data structure

	int		alignment;
	int		minlevel;
	int		ability;

** clans.c **

add this to do_setclan

add this to declarations

	int	abil;



	if ( !strcmp( arg2, "alignment" ) )
	{
		clan->alignment = atoi( argument );
		send_to_char( "Done.\n\r", ch );
		save_clan( clan );
		return;
	}


	if ( !strcmp( arg2, "minlevel" ) )
	{
		clan->minlevel = atoi( argument );
		send_to_char( "Done.\n\r", ch );
		save_clan( clan );
		return;
	}


	if ( !strcmp( arg2, "ability" ) )
	{
		for ( abil = 0; abil < MAX_ABILITY; abil++ )
		{
			if ( !str_cmp( ability_name[abil] , argument ) )
			{
				clan->ability = abil;
				send_to_char( "Done.\n\r", ch );
				save_clan( clan );
				return;
			}
		}
		send_to_char( "No such ability\n\r", ch );
		return;
	}



add this to do_showclan

    ch_printf( ch, "Alignment: %ld\n\r",
    			clan->alignment );
    ch_printf( ch, "Min level in %s: %ld\n\r",
    			ability_name[clan->ability], clan->minlevel );


add this to save_clan

	fprintf( fp, "Alignment    %d\n",	clan->alignment		);
	fprintf( fp, "MinLevel     %d\n",	clan->minlevel		);
	fprintf( fp, "Ability      %d\n",	clan->ability		);



add in fread_clan

	case 'A':
		KEY( "Alignment",	clan->alignment,	fread_number( fp ) );
		KEY( "Ability",	clan->ability,	fread_number( fp ) );
		break;


in case 'M'

		KEY( "MinLevel",	clan->minlevel,	fread_number( fp ) );




and now the bit that uses all this!

in do_enlist

change

		{
			SET_BIT( ch->speaks, LANG_CLAN );
			++clan->members;
			STRFREE( ch->pcdata->clan_name );
			ch->pcdata->clan_name = QUICKLINK( clan->name );
			ch->pcdata->clan = clan;
			ch_printf( ch, "Welcome to %s.\n\r", clan->name );
			save_clan ( clan );
			return;
		}

to

		{
			if ( ( clan->alignment<0 && ch->alignment>0 ) || ( clan->alignment>0 && ch->alignment<0 ) )
			{
				send_to_char( "Your beliefs are not compatable with this organisation" , ch );
				return;
			}

			if ( ch->skill_level[clan->ability] < clan->minlevel )
			{
				ch_printf( ch, "Your %s abilities do not meet this organisation's requirements.\n\r", ability_name[clan->ability] );
				return;
			}

			SET_BIT( ch->speaks, LANG_CLAN );
			++clan->members;
			STRFREE( ch->pcdata->clan_name );
			ch->pcdata->clan_name = QUICKLINK( clan->name );
			ch->pcdata->clan = clan;
			ch_printf( ch, "Welcome to %s.\n\r", clan->name );
			save_clan ( clan );
			return;
		}

